package com.config;

import com.jfinal.config.*;
import com.jfinal.core.JFinal;
import com.jfinal.kit.PropKit;
import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
import com.jfinal.plugin.druid.DruidPlugin;
import com.jfinal.plugin.redis.RedisPlugin;
import com.jfinal.render.ViewType;
import com.jfinal.template.Engine;
import root.action.*;

public class Config extends JFinalConfig {

	/**
	 * 建议使用 JFinal 手册推荐的方式启动项目 运行此 main
	 * 方法可以启动项目，此main方法可以放置在任意的Class类定义中，不一定要放于此
	 */
	public static void main(String[] args) {
		JFinal.start("WebRoot", 58082, "/");
	}

	/**
	 * 配置常量
	 */
	public void configConstant(Constants me) {
        // 加载少量必要配置，随后可用PropKit.get(...)获取值
        PropKit.use("a_little_config.txt");
        me.setDevMode(true);
        me.setViewType(ViewType.JSP);
	}

	/**
	 * 配置路由
	 */
	public void configRoute(Routes me) {
		// 用户Class
		me.add("/manager/article", ArticleAction.class);
		me.add("/manager/user", UserAction.class);
		me.add("/manager/menu", MenuAction.class);
		me.add("/manager/login", LoginAction.class);
		me.add("/manager/system", SystemAction.class);
	}

	public void configEngine(Engine engine) {

	}

	/**
	 * 配置插件
	 */
	public void configPlugin(Plugins me) {

        DruidPlugin druidPlugin = new DruidPlugin(PropKit.get("jdbcUrl"), PropKit.get("user"), PropKit.get("password").trim());
        me.add(druidPlugin);
        // 配置ActiveRecord插件
        ActiveRecordPlugin arp = new ActiveRecordPlugin("web", druidPlugin);
        // 所有映射在 MappingKit 中自动化搞定
        me.add(arp);

        RedisPlugin rp = new RedisPlugin("t", "127.0.0.1",6379);
		rp.start();
	}

	/**
	 * 配置全局拦截器
	 */
	public void configInterceptor(Interceptors me) {

	}

	/**
	 * 配置处理器
	 */
	public void configHandler(Handlers me) {

	}
}
